omniauth-twitter2 gemでtokenを取得する
from Twitter API
とりあえずTokenを取得するにはうなすけ先生のomniauth-twitter2 gemが便利だった
TwitterにOAuth 2.0でログインできるomniauth-twitter2 gemを作りました | うなすけとあれこれ
サンプルアプリ( unasuke/twitter-login-app )の起動方法
code:sh
git clone git@github.com:unasuke/twitter-login-app.git
cd twitter-login-app
docker compose build
docker compose run --rm app rails db:migrate
TWITTER_CLIENT_ID="取得したクライアントID" TWITTER_CLIENT_SECRET="取得したクライアントシークレット" docker compose up
OAuthで取得したaccess tokenは3時間くらいでexpireする
scopeにoffline.accessをいれておくと、refresh tokenが手に入るので、このrefresh tokenを使って次のaccess tokenを取得する
Twitter bot を作った時のメモ - 永遠に未完成
The OAuth 2.0 Authorization Framework
ステップ (C) と (D) はアクセストークンの有効期限が切れるまで繰り返される. クライアントがアクセストークンの期限切れを検知した場合, ステップ (G) にスキップし
とあるけど、DとGの間ってどのくらい空いても大丈夫なんだろ?
oauth2 gemでアクセストークンをリフレッシュする - blog.tnantoka.com
OAuth2::Client.newの引数に渡す値は以下と同じ
https://github.com/unasuke/omniauth-twitter2/blob/main/lib/omniauth/strategies/twitter2.rb#L11-L13